﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Arthus
{
    public partial class stavkaFINnalogaForma : Form
    {
        String FINid, FSTid, dokument;
        public stavkaFINnalogaForma(String idFIN, String idFST, String dokument)
        {
            InitializeComponent();
            this.FINid = idFIN;
            this.FSTid = idFST;
            this.dokument = dokument;
        }

        Posjed posjedObjekat = null;
        Konto kontoObjekat = null;
        FST fstObjekat = null;

        private void PromenaCheckBoxAutoBrojDokumenta()
        { 
            if (checkBoxIzborPartnera.Checked == true)
            {
                textBoxIzborPartnera.Enabled = false;
            }
            else {
                textBoxIzborPartnera.Enabled = true;
            }
        }
        private void checkBoxIzborPartnera_CheckedChanged(object sender, EventArgs e)
        {
            PromenaCheckBoxAutoBrojDokumenta();
        }

        private void SveKontroleNaPocetnuVrednost() {
            textBoxDuguje.Text = "0.00";
            textBoxPotrazuje.Text = "0.00";
            comboBoxIzborKonta.Focus();
        }

        private void buttonDodaj_Click(object sender, EventArgs e)
        {
            fstObjekat = new FST();
            posjedObjekat=new Posjed();
            if (comboBoxIzborKonta.SelectedIndex > -1 && textBoxDuguje.Text.Length > 0 && textBoxPotrazuje.Text.Length > 0)
            {
                if (comboBoxProdajnaJedinica.SelectedItem.ToString().Equals("Za sve prodajne jedinice") == false)
                {
                    fstObjekat.UbaciUFSTKnjizenje(Convert.ToInt32(FINid), comboBoxIzborKonta.SelectedItem.ToString().Split(' ')[0], 0, textBoxDokument.Text,
                        textBoxOpisKnjizenja.Text, textBoxVeza.Text, dateTimePickerDatumDokumenta, Convert.ToDecimal(textBoxDuguje.Text),
                        Convert.ToDecimal(textBoxPotrazuje.Text), posjedObjekat.VratiIDPosjedaNaOsnovuOznake(comboBoxProdajnaJedinica.SelectedItem.ToString()), false, "NULL", "NULL");
                }
                else
                {
                    fstObjekat.UbaciUFSTKnjizenje(Convert.ToInt32(FINid), comboBoxIzborKonta.SelectedItem.ToString().Split(' ')[0], 0, textBoxDokument.Text,
                        textBoxOpisKnjizenja.Text, textBoxVeza.Text, dateTimePickerDatumDokumenta, Convert.ToDecimal(textBoxDuguje.Text),
                        Convert.ToDecimal(textBoxPotrazuje.Text), 0, false, "NULL", "NULL");
                }
                MessageBox.Show("Stavka uspešno dodata");
                SveKontroleNaPocetnuVrednost();
            }
            else
            {
                MessageBox.Show("Morate popuniti sva polja!");
            }
        }

        private void textBoxDuguje_KeyPress(object sender, KeyPressEventArgs e)
        {
            Razno.DozvoliUnosSamoBrojevaIJedneTackeIMinusa(sender, e);
        }
        private void textBoxPotrazuje_KeyPress(object sender, KeyPressEventArgs e)
        {
            Razno.DozvoliUnosSamoBrojevaIJedneTackeIMinusa(sender, e);
        }
        private void textBoxDuguje_TextChanged(object sender, EventArgs e)
        {
            Razno.DozvoliMinusSamoNaPocetku(textBoxDuguje);
        }
        private void textBoxPotrazuje_TextChanged(object sender, EventArgs e)
        {
            Razno.DozvoliMinusSamoNaPocetku(textBoxPotrazuje);
        }

        private void PromenaKontrolaNaOsnovuFST() {
            if (FSTid.Length > 0)
            {
                //buttonIzmeni.Enabled = true;
                buttonDodaj.Enabled = false;
            }
            else {
                //buttonIzmeni.Enabled = false;
                buttonDodaj.Enabled = true;
            }
        }

        private void stavkaFINnalogaForma_Activated(object sender, EventArgs e)
        {
            PromenaKontrolaNaOsnovuFST();
        }

        private void stavkaFINnalogaForma_Load(object sender, EventArgs e)
        {
            posjedObjekat = new Posjed();
            posjedObjekat.PopuniComboBoxPlusZaSve(comboBoxProdajnaJedinica);
            kontoObjekat = new Konto();
            kontoObjekat.PopuniComboBox(comboBoxIzborKonta);
            textBoxDokument.Text = dokument;
            textBoxOpisKnjizenja.Text = dokument;
            textBoxVeza.Text = dokument;
            if (FSTid.Length > 0) {
                fstObjekat = new FST();
                fstObjekat.PopuniKontroleUstavkaFINNalogaForma(Convert.ToInt32(FSTid), comboBoxIzborKonta, comboBoxProdajnaJedinica, textBoxDokument,
                    dateTimePickerDatumDokumenta, dateTimePickerDatumDPO, dateTimePickerDatumDospeca, textBoxOpisKnjizenja, textBoxVeza, textBoxDuguje, textBoxPotrazuje);
            }
        }

        private void comboBoxIzborKonta_KeyPress(object sender, KeyPressEventArgs e)
        {
            try
            {
                Razno.comboKeyPressed(comboBoxIzborKonta);
            }
            catch
            {
                MessageBox.Show("Morate izabrati neki konto!");
                comboBoxIzborKonta.SelectedIndex = 0;
            }
        }
        private void comboBoxIzborKonta_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (comboBoxIzborKonta.Text.Length == 0) Razno.comboKeyPressed(comboBoxIzborKonta);
            }
            catch
            {
                MessageBox.Show("Morate izabrati neki konto!");
                comboBoxIzborKonta.SelectedIndex = 0;
            }
        }

        private void TABKaoENTER(KeyEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                SelectNextControl(ActiveControl, true, true, true, true);
            }
        }
        private void comboBoxIzborKonta_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void comboBoxProdajnaJedinica_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void textBoxDokument_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void dateTimePickerDatumDokumenta_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void textBoxOpisKnjizenja_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void textBoxVeza_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void textBoxDuguje_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }
        private void textBoxPotrazuje_KeyDown(object sender, KeyEventArgs e)
        {
            TABKaoENTER(e);
        }

        private void buttonZatvori_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
